package com.wan37.logic.guild.service.impl;

import com.wan37.logic.guild.dao.GuildUserDao;
import com.wan37.logic.guild.domain.entity.GuildDO;
import com.wan37.logic.guild.domain.entity.GuildUserDO;
import com.wan37.logic.guild.domain.vo.GuildUserVO;
import com.wan37.logic.guild.service.GuildUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @author : luoyong
 * @date : 2020-08-04 12:00
 **/
@Service("guildUserService")
public class GuildUserServiceImpl implements GuildUserService {
    @Autowired
    private GuildUserDao guildUserDao;
    @Override
    public boolean update(GuildUserVO guildUserVO) {
        return guildUserDao.update(new GuildUserDO(guildUserVO));
    }

    @Override
    public boolean save(GuildUserVO guildUserVO) {
        return guildUserDao.add(new GuildUserDO(guildUserVO));
    }

    @Override
    public boolean delete(GuildUserVO guildUserVO) {
        return false;
    }

    @Override
    public List<GuildUserVO> getGuildUserByGuildId(String guildId) {
        List<GuildUserDO> guildUserDOList = guildUserDao.getGuildUserDOByGuildId(guildId);
        List<GuildUserVO> guildUserVOList = null;
        if (guildUserDOList != null){
            guildUserVOList = new ArrayList<>();
            for (GuildUserDO guildUserDO : guildUserDOList){
                GuildUserVO guildUserVO = new GuildUserVO(guildUserDO);
                guildUserVOList.add(guildUserVO);
            }
        }
        return guildUserVOList;
    }

    @Override
    public GuildUserVO getGuildUserByGuildIdAndUserId(String guildId, String userId) {
        List<GuildUserDO> guildUserDOList = guildUserDao.getGuildUserDOByGuildId(guildId);
        GuildUserVO guildUserVO = null;
        if (guildUserDOList != null){
            guildUserVO = new GuildUserVO(guildUserDOList.get(0));
        }
        return guildUserVO;
    }

    @Override
    public boolean deleteByGuildIdAndUserId(String guildId, String userId) {
        return guildUserDao.deleteByGuildIdAndUserId(guildId, userId);
    }

    @Override
    public boolean deleteByGuildId(String guildId) {
        return guildUserDao.deleteByGuildId(guildId);
    }
}
